home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / nio / ByteBufferAsCharBufferL.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.6 KB  |  140 lines

  1. package java.nio;
  2.  
  3. class ByteBufferAsCharBufferL extends CharBuffer {
  4.    // $FF: renamed from: bb java.nio.ByteBuffer
  5.    protected final ByteBuffer field_0;
  6.    protected final int offset;
  7.  
  8.    ByteBufferAsCharBufferL(ByteBuffer var1) {
  9.       super(-1, 0, var1.remaining() >> 1, var1.remaining() >> 1);
  10.       this.field_0 = var1;
  11.       int var2 = this.capacity();
  12.       this.limit(var2);
  13.       int var3 = this.position();
  14.  
  15.       assert var3 <= var2;
  16.  
  17.       this.offset = var3;
  18.    }
  19.  
  20.    ByteBufferAsCharBufferL(ByteBuffer var1, int var2, int var3, int var4, int var5, int var6) {
  21.       super(var2, var3, var4, var5);
  22.       this.field_0 = var1;
  23.       this.offset = var6;
  24.    }
  25.  
  26.    public CharBuffer slice() {
  27.       int var1 = this.position();
  28.       int var2 = this.limit();
  29.  
  30.       assert var1 <= var2;
  31.  
  32.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  33.       int var4 = (var1 << 1) + this.offset;
  34.  
  35.       assert var4 >= 0;
  36.  
  37.       return new ByteBufferAsCharBufferL(this.field_0, -1, 0, var3, var3, var4);
  38.    }
  39.  
  40.    public CharBuffer duplicate() {
  41.       return new ByteBufferAsCharBufferL(this.field_0, this.markValue(), this.position(), this.limit(), this.capacity(), this.offset);
  42.    }
  43.  
  44.    public CharBuffer asReadOnlyBuffer() {
  45.       return new ByteBufferAsCharBufferRL(this.field_0, this.markValue(), this.position(), this.limit(), this.capacity(), this.offset);
  46.    }
  47.  
  48.    // $FF: renamed from: ix (int) int
  49.    protected int method_0(int var1) {
  50.       return (var1 << 1) + this.offset;
  51.    }
  52.  
  53.    public char get() {
  54.       return Bits.getCharL(this.field_0, this.method_0(this.nextGetIndex()));
  55.    }
  56.  
  57.    public char get(int var1) {
  58.       return Bits.getCharL(this.field_0, this.method_0(this.checkIndex(var1)));
  59.    }
  60.  
  61.    public CharBuffer put(char var1) {
  62.       Bits.putCharL(this.field_0, this.method_0(this.nextPutIndex()), var1);
  63.       return this;
  64.    }
  65.  
  66.    public CharBuffer put(int var1, char var2) {
  67.       Bits.putCharL(this.field_0, this.method_0(this.checkIndex(var1)), var2);
  68.       return this;
  69.    }
  70.  
  71.    public CharBuffer compact() {
  72.       int var1 = this.position();
  73.       int var2 = this.limit();
  74.  
  75.       assert var1 <= var2;
  76.  
  77.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  78.       ByteBuffer var4 = this.field_0.duplicate();
  79.       var4.limit(this.method_0(var2));
  80.       var4.position(this.method_0(0));
  81.       ByteBuffer var5 = var4.slice();
  82.       var5.position(var1 << 1);
  83.       var5.compact();
  84.       this.position(var3);
  85.       this.limit(this.capacity());
  86.       return this;
  87.    }
  88.  
  89.    public boolean isDirect() {
  90.       return this.field_0.isDirect();
  91.    }
  92.  
  93.    public boolean isReadOnly() {
  94.       return false;
  95.    }
  96.  
  97.    public String toString(int var1, int var2) {
  98.       if (var2 <= this.limit() && var1 <= var2) {
  99.          try {
  100.             int var3 = var2 - var1;
  101.             char[] var4 = new char[var3];
  102.             CharBuffer var5 = CharBuffer.wrap(var4);
  103.             CharBuffer var6 = this.duplicate();
  104.             var6.position(var1);
  105.             var6.limit(var2);
  106.             var5.put(var6);
  107.             return new String(var4);
  108.          } catch (StringIndexOutOfBoundsException var7) {
  109.             throw new IndexOutOfBoundsException();
  110.          }
  111.       } else {
  112.          throw new IndexOutOfBoundsException();
  113.       }
  114.    }
  115.  
  116.    public CharSequence subSequence(int var1, int var2) {
  117.       int var3 = this.position();
  118.       int var4 = this.limit();
  119.  
  120.       assert var3 <= var4;
  121.  
  122.       var3 = var3 <= var4 ? var3 : var4;
  123.       int var5 = var4 - var3;
  124.       if (var1 >= 0 && var2 <= var5 && var1 <= var2) {
  125.          int var6 = var2 - var1;
  126.          int var7 = this.offset + (var3 + var1 << 1);
  127.  
  128.          assert var7 >= 0;
  129.  
  130.          return new ByteBufferAsCharBufferL(this.field_0, -1, 0, var6, var6, var7);
  131.       } else {
  132.          throw new IndexOutOfBoundsException();
  133.       }
  134.    }
  135.  
  136.    public ByteOrder order() {
  137.       return ByteOrder.LITTLE_ENDIAN;
  138.    }
  139. }
  140.